CS551, Fall 2003: Course Outline
This is a first-year graduate class in computer networking. As such, this
class will give you a deeper understanding of networking technologies from the
routing-layer on, and expose you to classic and contemporary literature on the
subject. The class also has a hands-on simulation project which will give you an
insight into what it takes to build real networking sub-systems.
The class has the following components:
- Homeworks (10%)
- I will assign between 3 and 4 homeworks. Each homework will contain an
assortment of problems from the textbook, and possibly one ns
simulation exercise designed to illustrate some topic taught in class.
- Programming Assignments (30%)
- You will be expected to complete two programming projects. They will be
described in more detail later in the semester. The first will be assigned in
approximately the third week of class. Both projects will involve network
programming with sockets. Both projects will also involve emulating some
network subsystem discussed in class. You will build these systems using C++
on the University's Unix machines. The projects assume only a basic
understanding of C++ and Unix; if, however, you lack this background, don't
take the class.
- Midterm Exam (25%)
- There will be one in-class midterm. It will be based on course readings
and class discussions. It will be closed book. You may, however, bring one
8.5x11 sheet of paper with anything written on it.
- Final Exam (35%)
- The final exam will emphasize the second half of the term. It will be
closed book. You may, however, bring one 8.5x11 sheet of paper with anything
written on it.
By enrolling this class, here is what you're agreeing to:
- All work turned in on homeworks, programming assignments and exams must be
that of the individual student. It is often productive to study with other
students. However, if any homeworks are found to be shared between two (or
more) students, zero credit will be given to all students concerned and all
students will be disciplined.
- This policy also holds for programming assignments. In this class, we will
use sophisticated automated program checkers to detect cheating. Be aware that
the program checkers have demonstrated very good results and are widely used
within the academic community. Any student caught cheating will be given zero
credit and will be disciplined.
- You must keep up with the assigned readings. If
you come to class without having read the papers for the corresponding
lecture, you're unlikely to learn anything at all from the lecture.
- You are expected to read all the papers in detail. Not all details will be
covered in class. I will assume knowledge of material covered in EE450 and a
C/C++ programming proficiency from CS402 or its equivalent. If you covered the
introductory material at some other school it is YOUR responsibility to fill
in any missing background. Feel free to ask me for advice on appropriate
introductory readings if you feel your background is insufficient.
- I expect you to attend every class meeting. If you do happen to miss a
session, you are responsible for finding out what material was covered and if
any administrative announcements were made. You must do so BEFORE the next
session (e.g., if there is an assignment given during the missed
session, you are still responsible for completing it by the next week along
with the other students).
All homeworks must be solved and written independently, or you will be
penalized for cheating. You should be thoroughly familiar with the Academic Integrity Guide and the Guide to Avoiding Plagiarism.
In this course we encourage students to study together. This includes
discussing general strategies to be used on individual assignments. However, all
work submitted for the class is to be done individually.
Some examples of what is not allowed by the conduct code: copying all or part
of someone else's work (by hand or by looking at others' files, either secretly
or if shown), and submitting it as your own; giving another student in the class
a copy of your assignment solution; consulting with another student during an
exam. If you have questions about what is allowed, please discuss it with the
instructor.
Students who violate University standards of academic integrity are subject
to disciplinary sanctions, including failure in the course and suspension from
the University. Since dishonesty in any form harms the individual, other
students, and the University, policies on academic integrity will be strictly
enforced. We expect you to familiarize yourself with the Academic Integrity
guidelines found in the current SCampus.
Violations of the Student Conduct Code will be filed with the Office of
Student Conduct, and appropriate sanctions will be given.
We have a class account on the USC machines. This is where you will submit
your programming assignments.
You should re-visit the class web page on a regular basis and check out any
updates.
We will also set up a mailing list for announcements:
cs551-announce@enl.usc.edu.
- Final grades (A,B,C,D,or F) will be determined using a ``modified'' curve
(i.e., we won't necessarily assign an equal number of failing grades as
passing grades!)
- We will assign grades of C and BELOW to
individuals who do not perform satisfactorily in the above areas
(i.e.,, you should not assume that this is a graduate class and that
you will get a B- or even C if you perform unsatisfactorily.).
- We will not assign incompletes unless it is for
a documented medical reason (in accordance with USC policy).
For various reasons having to do with preserving intellectual property,
access to papers and lectures is restricted to machines within USC and ISI.
Many of you have asked, or will want, access to these materials from your
home or work computers. I cannot individually enable access to the site.
To access these resources from a computer situated outside USC, you can set
up a VPN to USC.
If your computer runs Linux, there may be a simpler solution. ssh into
one of the USC machines using the -D option (check out the man page).
Then, you will need to set your browser to use the port number provided to the
-D option of ssh as a SOCKS v4 proxy. Most modern browsers
support this. You should also be able to use this trick with Windows and Mac ssh
clients, although I haven't tried this myself.
Ramesh Govindan
ramesh@usc.edu
11 September 2003